package 题目集.dfs;

//https://vjudge.net.cn/contest/613789#problem/I


/**
 * 两个等式
 * a*b+c*d=e*f
 * g*h+i*j=k*l
 * 问1-13中有多少符合的方案
 */
public class 补全等式 {
    static boolean[] vis = new boolean[14];
    static int[] a = new int[13];
    static int ans = 0;

    /**
     * 有i个空，n个数可选时，有多少种解决方案
     */
    public static void check(int i) {

        if (i == 6) {   //已经填了6个数
            if (a[12] * a[11] + a[10] * a[9] != a[8] * a[7]) {  //验证这6个数符合要求,不符合则拦截
                return;
            }
        } else if (i == 0) { //已经填了12个数
            if (a[6] * a[5] - a[4] * a[3] == a[2] * a[1]) {    //验证后面的6个数符合要求
                ans++;
            }
            return;
        }
        for (int j = 1; j <= 13; j++) {
            if (!vis[j]) {
                vis[j] = true;
                a[i] = j;
                check(i - 1);
                vis[j] = false;
            }
        }
    }

    public static void main(String[] args) {
        check(12);
        System.out.println(ans);
    }
}
